Complex network environments are increasingly used by enterprises for effective collaboration and interaction and to e.g. store data and resources. A typical network environment contains myriad network nodes, including hosts, load balancers, routers, switches, etc. Such a network environment connecting the network nodes can provides secure user access to various services and an infrastructure for deployment, interconnection, and aggregation of shared resources as required, including applications, hosts, appliances, and storage. Improving operational efficiency and optimizing utilization of resources in such network environments are some of the challenges facing their managers. One such challenge arises from a fact that, often times, in a typical network environment such as e.g. in data center networks or in service provider networks, various resources (e.g. applications) have varying characteristics in terms of bandwidth, latency, fault tolerance, and, in some cases, legal requirements. Because of this, at times, strict guidelines require various traffic flows to take different forwarding paths within a given network environment, i.e. some data traffic may have to be forwarded via a set of specific network nodes within a network environment. While, theoretically, this can be achieved using a completely isolated set of hardware for so-called “forwarding planes” and/or tweaking routing protocol metrics to achieve it, it is a very costly, complex and cumbersome process.